﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;

namespace Modelo.Sistema
{
    public class CatalogoPedidos
    {
        private static CatalogoPedidos _Instancia;
        public static CatalogoPedidos ObtenerInstancia()
        {
            if (_Instancia == null)
            {
                _Instancia = new CatalogoPedidos();
            }
            return _Instancia;
        }

        private List<Entidades.Sistema.Pedido> Col_Pedidos;

        private CatalogoPedidos()
        {
            Col_Pedidos = Mapping.Sistema.MappingPedidos.ConsultarPedidos();
        }
        public ReadOnlyCollection<Entidades.Sistema.Pedido> ListarPedidos()
        {
            return Col_Pedidos.AsReadOnly();
        }

        public void ModificarPedido(Entidades.Sistema.Pedido oPedido)
        {
            //Falta agregar en la capa de mapeo la modificacion del pedido
            //Mapping.Sistema.MappingPedidos.ModificarPedido(oPedido);
            Col_Pedidos.Remove(oPedido);
            Col_Pedidos.Add(oPedido);
        }

        public List<Entidades.Sistema.Pedido> ListarPedidosPorProducto(Entidades.Sistema.Producto oProducto)
        {
            var query = from ped in Col_Pedidos
                        from det in ped.DetallePedidos
                        where det.producto.cod_producto == oProducto.cod_producto
                        select ped;

            return query.ToList();
        }
    }
}
